package com.yan.start.auto;

import com.yan.start.HellowService;
import com.yan.start.bean.HelloProperties;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 自定义starter
 *
 * @author shengren.yan
 * @create 2023-04-05
 */
// 我们开启属性文件绑定功能 （HelloProperties自动与属性文件绑定） 默认放到容器中
@EnableConfigurationProperties(HelloProperties.class)
@Configuration
public class HellowAutoConfigure {


    // 当容器中没有配置 该类（HellowService） 此配置类生效 ,不进行绑定
    // 这个注解：就是引用包，如果没有修改HellowService，就使用默认的，目前方法的配置，【条件装配】 该注解也可以写在 类上
    @ConditionalOnMissingBean(HellowService.class)
    @Bean
    public HellowService hellowService() {
        return new HellowService();
    }

}
